<template>
  <div id="app">
    <!-- 整个项目自动缓存，去除因为重新加载而丢失数据的情况 -->
    <keep-alive>
      <router-view />
    </keep-alive>
    <div>{{target}}</div>
  </div>
</template>

<script>
import { Script } from "vm";

import MapLoader from "./Amap.js";

export default {
  name: "app",
  data() {
    return {
      content: "",
      target: ""
    };
  },
  //让一进来就能获取到定位
  created() {
    // this.getGaoDeURL();
    if(this.getLocation()){
      return;
    }else{
      return;
    }
    
  },
  mounted: function () {
  //刷新页面时清除ele_login的Storage，避免突然关闭页面后，再次访问出错
  //此方法每次刷新需重新登录
  window.addEventListener('beforeunload',()=>{
     localStorage.removeItem('ele_login');
 });
},
  methods: {
    getGaoDeURL() {
      this.$axios("/gaode/maps?v=1.4.15&key=a861168072d812f7e83e74973c48104d")
        .then(result => {
          // console.log(result.data);
          this.content = result.data;
          this.target = `<script>+${this.content} <\/script>`;
        })
        .catch(err => {
          console.log(err);
        });
    },
    getLocation() {


      const self = this;

      AMap.plugin("AMap.CitySearch", function() {
        var citySearch = new AMap.CitySearch();
        citySearch.getLocalCity(function(status, result) {
          if (status === "complete" && result.info === "OK") {
            // 查询成功，result即为当前所在城市信息
            // console.log(result);
            self.$store.dispatch("setLocation", result);
            self.$store.dispatch("setAddress", result.city);
          }
        });
      });



      // //不实例化map，要将map改为AMap
      // AMap.plugin("AMap.Geolocation", function() {
      //   var geolocation = new AMap.Geolocation({
      //     // 是否使用高精度定位，默认：true
      //     enableHighAccuracy: false,
      //     // 设置定位超时时间，默认：无穷大
      //     timeout: 10000
      //   });
      //   geolocation.getCurrentPosition();
      //   AMap.event.addListener(geolocation, "complete", onComplete);
      //   AMap.event.addListener(geolocation, "error", onError);

      //   function onComplete(data) {
      //     // data是具体的定位信息
      //     //精准定位
      //     console.log(data);
      //     self.$store.dispatch("setLocation", data);
      //     self.$store.dispatch("setAddress", data.formattedAddress);
      //   }

      //   function onError(data) {
      //     // 定位出错
      //     //非精准定位
      //     // console.log(data);
      //     self.getLngLatLocation();
      //   }
      // });
    }
    // getLngLatLocation() {
    //   const self = this;
    //   AMap.plugin("AMap.CitySearch", function() {
    //     var citySearch = new AMap.CitySearch();
    //     citySearch.getLocalCity(function(status, result) {
    //       if (status === "complete" && result.info === "OK") {
    //         // 查询成功，result即为当前所在城市信息
    //         console.log(result);
    //         AMap.plugin("AMap.Geocoder", function() {
    //           var geocoder = new AMap.Geocoder({
    //             // city 指定进行编码查询的城市，支持传入城市名、adcode 和 citycode
    //             city: result.adcode
    //           });

    //           var lnglat = result.rectangle.split(";")[0].split(",");

    //           geocoder.getAddress(lnglat, function(status, data) {
    //             if (status === "complete" && data.info === "OK") {
    //               // result为对应的地理位置详细信息
    //               // console.log(data);
    //               self.$store.dispatch("setLocation", {
    //                 addressComponent: {
    //                   city: result.city,
    //                   province: result.province
    //                 },
    //                 formattedAddress: data.regeocode.formattedAddress
    //               });

    //               self.$store.dispatch(
    //                 "setAddress",
    //                 data.regeocode.formattedAddress
    //               );
    //             }
    //           });
    //         });
    //       }
    //     });
    //   });
    // }
  }
};
</script>

<style scoped>
#app {
  width: 100%;
  height: 100%;
  font-size: 14px;
  background-color: #ddd;
}
</style>
